【嵌入式Linux之QEMU模拟器】3、编译Linux内核与dtb文件 | 您所在的位置:网站首页 › qemu编译 deb canon › 【嵌入式Linux之QEMU模拟器】3、编译Linux内核与dtb文件 |
1、下载Linux内核 除了以下两种正统方法,还可以到我的云盘下载。 方法一: 在终端使用git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/进行自动下载。 下载的速度如果慢的无法忍受的话,建议使用第二种官网下载 方法二: 官网 下载LTS的4.4.×版本。 2、下载完毕后,将其拖曳到Ubuntu中,输入tar xvf linux-4.4.195.tar.xz解压缩. 3、进入到解压后的文件夹,然后输入vi Makefile
修改ARCH和CROSS_COMPILE的值,如下图所示。 针对我的linux-4.4.195版本的是在257行~258行 ARCH ?= arm CROSS_COMPILE ?= arm-linux-gnueabi-4、修改配置文件 在正式修改配置文件之前,先看一下我们的仿真开发板所在位置。 ①、输入cd ./arch可以看到QEMU支持的多种架构CPU,其中我们要关注是ARM ②、输入cd ./arm可以看到ARM支持的开发板
下面让我们来查看仿真开发板的配置文件所在目录及具体内容 ①、输入cd ./configs ②、输入vi vexpress_defconfig 针对不同的开发板,Linux内核都有一个不同的配置文件 进入可详细查看,针对vexpress的内核配置。 其中...=y中的y表示编译器内核,即静态编译。而相对的y表示动态编译。 接下来便是正式配置环节 ①、退回到内核的根目录,即./linux-4.4.195目录下! 输入make vexpress_defconfig 输入ll可查看刚刚生成的.config文件 ②、输入make zImage -j6,进行编译内核。【且同时开启了6个线程】 (时间蛮长的…) 编译完成后… 编译生成的内核为ach/arm/boot中的zImage。【zImage和平台无关】 ③、输入make modules -j4,进行编译内核模块 ④、输入make dtbs,进行编译dtbs文件 dtbs和具体开发板有关 ⑤、输入qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0",用以验证内核是否编译成功。
这里再学习两个技巧: 技巧一: 最后的这个进程无法用普通的ctrl + C的方法关闭,可以采用下面方法。 ①、新打开一个终端,输入ps -a,查看对应的PID号 技巧二: 发现最后一个执行的内容挺长的,这里我们可以制造一个脚本,通过运行脚本的方式,直接编译! ①、在内核./QEMU根目录下,输入touch boot.sh。 ②、为这个脚本的所有执行用户赋予可执行的权限,输入chmod a+x boot.sh ③、通过输入vi boot.sh,将上述长命令拷贝进来!【太长的话可以换行,行间需要加入\】【如下代码】 ④、输入./boot.sh即可执行该脚本 【注意,目录要变得话,里面的路径也需要变。也就是说该脚本只能固定存放在某个目录下!(以上所述例子是在./QEMU目录下!)】 qemu-system-arm \ -M vexpress-a9 \ -m 512M \ -kernel linux-4.4.195/arch/arm/boot/zImage \ -dtb linux-4.4.195/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \ -nographic \ -append "console=ttyAMA0"脚本换行,有一个需要注意的问题,必须让后面的换行符高亮,如果呈现白色说明,上下两行之间空格太多,应重新回车换行! |
CopyRight 2018-2019 实验室设备网 版权所有 |